//定义类型
class Person {
  public  name: string;
  age: number;

  constructor(name: string, age: number) {
    this.name = name
    this.age = age
  }


  speak(){
      console.log(`我是  ${this.name}  今年 ${this.age}`);
      
  }

}



class Student extends Person{
   grader: string;
    //当没有 显示的声明构造器的时候，使用的是父类的构造器
    constructor(name: string, age: number,grader: string){
        super(name, age)//调用父类的构造器
        this.grader = grader;
    }

    //重写 的 Person中的 方法
    override speak(){
      console.log(`我是  ${this.name}  今年 ${this.age}  性别  ${this.grader}`);
      
  }

}






// 使用类型
let user: Person = new Person("张三",18);
user.speak();

let stu1:Student = new Student("刘备",28,"男");
stu1.speak();


